package com.learn.flutter_learn_vi;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.webkit.WebResourceError;
import android.webkit.WebResourceRequest;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class PrivacyActivity extends Activity implements DialogInterface.OnClickListener {
    boolean useLocalHtml = true;
    String privacyUrl = "https://blog.csdn.net/final5788";
    final String htmlStr = "请您本产品之前，请务必仔细阅读并理解<a href=\"http://www.jinbangshichuang.com/yuxiyonghu.html\">《用户协议》</a>和<a href=\"http://www.jinbangshichuang.com/yuxiyinsi.html\">《隐私政策》</a>各条\n" +
            "款，我们一向尊重并会严格保护用户在使用本产品时的合法权益（包括用户隐私、用户数据等）不受到任何侵犯。本协议（包括本文最后部分的隐私政策）是用户（包括通过各种合法途径获取到本产品的自然人、法人或其他组织机构，以下简称“用户”或“您”）与我们之间针对本产品相关事项最终的、完整的且排他的协议，并取代、合并之前的当事人之间关于上述事项的讨论和协议。本协议将对用户使用本产品的行为产生法律约束力，您已承诺和保证有权利和能力订立本协议。用户开始使用本产品将视为已经接受本协议，请认真阅读并理解本协议中各种条款，包括免除和限制我们的免责条款和对用户的权利限制（未成年人审阅时应由法定监护人陪同），如果您不能接受本协议中的全部条款，请勿开始使用本产品。\n";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_privacy);

        //如果已经同意过隐私协议则直接进入Unity Activity
        if (GetPrivacyAccept()) {
            EnterUnityActivity();
            return;
        }
        ShowPrivacyDialog();//弹出隐私协议对话框
    }

    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        switch (i) {
            case AlertDialog.BUTTON_POSITIVE://点击同意按钮
                SetPrivacyAccept(true);
                EnterUnityActivity();//启动Unity Activity
                break;
            case AlertDialog.BUTTON_NEGATIVE://点击拒绝按钮,直接退出App
                finish();
                break;
        }
    }

    private void ShowPrivacyDialog() {
        WebView webView = new WebView(this);
        if (useLocalHtml) {
            webView.loadDataWithBaseURL(null, htmlStr, "text/html", "UTF-8", null);
        } else {
            webView.loadUrl(privacyUrl);
            webView.setWebViewClient(new WebViewClient() {
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    view.loadUrl(url);
                    return true;
                }

                @Override
                public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
                    view.reload();
                }

                @Override
                public void onPageFinished(WebView view, String url) {
                    super.onPageFinished(view, url);
                }
            });
        }

        AlertDialog.Builder privacyDialog = new AlertDialog.Builder(this);
        privacyDialog.setCancelable(false);
        privacyDialog.setView(webView);
        privacyDialog.setTitle("用户协议 & 隐私");
        privacyDialog.setNegativeButton("退出", this);
        privacyDialog.setPositiveButton("同意", this);
        privacyDialog.create().show();
    }

    //启动Unity Activity
    private void EnterUnityActivity() {
        Intent unityAct = new Intent();
        unityAct.setClassName(this, "com.learn.flutter_learn_vi.MainActivity");
        this.startActivity(unityAct);
        this.finish();
    }

    //保存同意隐私协议状态
    private void SetPrivacyAccept(boolean accepted) {
        SharedPreferences.Editor prefs = this.getSharedPreferences("PlayerPrefs", MODE_PRIVATE).edit();
        prefs.putBoolean("PrivacyAccepted", accepted);
        prefs.apply();
    }

    private boolean GetPrivacyAccept() {
        SharedPreferences prefs = this.getSharedPreferences("PlayerPrefs", MODE_PRIVATE);
        return prefs.getBoolean("PrivacyAccepted", false);
    }
}